<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
        数据类型
        基本数据类型（简单数据类型）：number string Bloolean undefined null symbol BigInt
        引用数据类型（复杂数据类型）：object 
        symbol 它的值是唯一的 作用：用来解决命名冲突
        */
        // let symbol1 = Symbol();
        // console.log(symbol1);
        // let symbo2 = Symbol();
        // console.log(symbo2);
        // console.log(symbol1 == symbo2);      //false
        // console.log(typeof symbol1);         //symbol1
        //变量命名 对象中的属性名
        // let obj = {};
        // obj.name = 'tom';
        // obj对象 name为key 对象的属性名 "tom" value 对象的属性值
        //                   string                  任意数据类型
        // let sex = 'sex';
        // obj[sex] = '男';
        // console.log(obj);
        // obj['age'] = 18;
        // console.log(obj);
        // obj[symbol1] = 'sdfg';
        // console.log(obj);

        // let symbo3 = Symbol('jiaxing');
        // console.log(symbo3);


        // BigInt 表示整数 没有位数限制 可以表示任意位数的整数
        // Number 到达一定为数之后 就无法表示 返回infinity
        let num = 123;
        console.log(typeof num);
        let num1 = 135n;
        console.log(typeof num1);
        let num2 = 45n;
        console.log(num1 % num2); //bigint可以进行加减乘除 取模
        console.log(-num1); //不能使用+bigint 可以使用-表示负值

        // BigInt可以同其他数据类型进行转换吗
        // number string  Boolean undefined null
        // BigInt如何转换为上面的数据类型
        // 上面的数据类型如何转换为bigint
        console.log(BigInt(123));//将number类型转换为bigint类型
        console.log(BigInt('123'));//将string类型（必须是整数类型的字符串，不能有小数不能有字符）转换为bigint
        console.log(BigInt(true));//1n  将Boolean转换为bigint类型
        console.log(BigInt(false));//0n  true 1n false 0n
        // console.log(BigInt(undefined));//undefined报错
        // console.log(BigInt(null));//null报错

        console.log(Number(18465n));//Number可以将bigint转换为number类型
        console.log(String(456n));//String可以将bigint类型转换为string类型但是n会消失
        console.log(Boolean(1n));//Boolean可以将bigint类型转换为布尔值 1n  true  0nfalse  (非0n都是true)
        console.log(Boolean(0n));
        console.log(Boolean(68513n));
        console.log(Boolean(-68351n));

        console.log(!0n);//true
        console.log(!452n);//false
    </script>
</body>

</html>